package com.eve.test;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
	
	private Pattern urlPattern = Pattern
			.compile("http://t\\.cn/[A-Za-z0-9]+\\b"); // 微地址匹配
	private Matcher urlMatcher;
	private List<String> urlList;
	private TextView result,othervalue;
	private String text;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		result=(TextView)findViewById(R.id.value);
		othervalue=(TextView)findViewById(R.id.othervalue);
		
		text="全新的#网易应用中心 2.0# 终于昨天开发完成！现在，团队的所有人都焦急地等待着App Store的正式审核通过。"+
		"我们真心希望21日，世界不会毁灭，而网易应用中心会为大家呈现一个全新的社交应用时代！为我们的应用生活带来新生！越狱版下载：http://t.cn/zjSR1lH 新版预览：http://t.cn/zjSpL5O";
		
		urlHandle(stringFilter(text),result);
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}
	
	/**
	 * url處理
	 * */
	private void urlHandle(String text, TextView tv) {
		urlList = new ArrayList<String>();
		urlMatcher = urlPattern.matcher(text);
		StringBuffer sb = new StringBuffer();
		while (urlMatcher.find()) {
			urlMatcher.appendReplacement(sb, ""); // 查詢第一處匹配內容，將其刪除，然後將此之前的內容保存在sb中
			urlList.add(urlMatcher.group()); // 将匹配的内容添加到列表里
			
			tv.append(sb); // 將處理好的文職寫到textview中
			tv.append(Html.fromHtml("<img src='" + R.drawable.tag_web + "'/>",
					imageGetter, null)); // 在匹配內容處插入圖片
			sb.setLength(0); // 清空sb內容
			urlMatcher.appendTail(sb); // 將未匹配的內容放入sb
			urlMatcher = urlPattern.matcher(sb); // 重新設置Pattern，以新的sb的內容進行查詢
			sb.setLength(0); // 清空sb以備後用
			
		}
		sb.setLength(0);
		urlMatcher.appendTail(sb);
		tv.append(sb);
	}

	ImageGetter imageGetter = new ImageGetter() {
		@Override
		public Drawable getDrawable(String source) {
			int id = Integer.parseInt(source);
			// 根据id从资源文件中获取图片对象
			Drawable drawable = getResources().getDrawable(id);
			drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
					drawable.getIntrinsicHeight());
			return drawable;
		}
	};
	
	/**
	 * 半角转换为全角,去除特殊字符或将所有中文标号替换为英文标号
	 * 
	 * @param str
	 * @return
	 */
	public static String stringFilter(String str) {
		char[] c = str.toCharArray();
		for (int i = 0; i < c.length; i++) {
			if (c[i] == 12288) {
				c[i] = (char) 32;
				continue;
			}
			if (c[i] > 65280 && c[i] < 65375)
				c[i] = (char) (c[i] - 65248);
		}
		str = new String(c);
		str = str.replaceAll("【", "[").replaceAll("】", "]")
				.replaceAll("！", "!").replaceAll("：", ":"); // 替换中文标号
		String regEx = ""; // "[『』]"; // 清除掉特殊字符
		Pattern p = Pattern.compile(regEx);
		Matcher m = p.matcher(str);
		return m.replaceAll("").trim();
	}

}
